// 调试组合函数
// NEVER SAY DIE  ==>  never-say-die

// 先分割，再转小写，再合并
const _ = require("lodash");

// _.split()  多个参数， 需要重写
const split = _.curry((sep, str) => _.split(str, sep));

// _.toLower() 一个参数， 直接使用
const map = _.curry((fn, arr) => _.map(arr, fn));

// _.join()  多个参数， 需要重写
const join = _.curry((sep, arr) => _.join(arr, sep));

const log = v => {
  console.log(v);
  return v;
}

const trace = _.curry((tag, v) => {
  console.log(tag, v);
  return v;
})
const f = _.flowRight(join("-"), log, map(_.toLower), log, split(" "));
const f1 = _.flowRight(join("-"), trace("map之后"), map(_.toLower), trace('split之后'), split(" "));
let str = "NEVER SAY DIE";
console.log(f(str));
console.log(f1(str));
